DigiOffice Gateway Web Services

<back to all web services

ProcessDocumentRequestMessage

Requires Authentication
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Environment:
    title: Optional[str] = None
    code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Party:
    title: Optional[str] = None
    code: Optional[str] = None
    version: Optional[str] = None
    environment: Optional[Environment] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Header:
    message_i_d: Optional[str] = None
    timestamp: datetime.datetime = datetime.datetime(1, 1, 1)
    sender: Optional[Party] = None
    recipient: Optional[Party] = None
    request_message_i_d: Optional[Object] = None


class eventType(str, Enum):
    UPDATE = 'Update'
    CREATE = 'Create'
    DELETE = 'Delete'
    RESPONSE = 'Response'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Document(ICustomProperties):
    id: Optional[str] = None
    root_document_i_d: Optional[str] = None
    registrationprofile_i_d: Optional[str] = None
    title: Optional[str] = None
    full_title: Optional[str] = None
    number: Optional[str] = None
    version: Optional[str] = None
    external_number: Optional[str] = None
    external_version: Optional[str] = None
    internal_number: Optional[str] = None
    internal_invoice_number: Optional[str] = None
    person_i_d: int = 0
    relation_i_d: int = 0
    relation_title: Optional[str] = None
    project_i_d: int = 0
    project_title: Optional[str] = None
    extension: Optional[str] = None
    date: Optional[datetime.datetime] = None
    comments_count: int = 0
    has_comments: bool = False
    has_preview: bool = False
    extra_field: Optional[str] = None
    is_favorite: bool = False
    documentcategory_text: Optional[str] = None
    file_size: Optional[int] = None
    file_date: Optional[datetime.datetime] = None
    hash: Optional[str] = None
    hash_type: Optional[str] = None
    file_url: Optional[str] = None
    standard_document_url: Optional[str] = None
    is_corporate_identity: bool = False
    user_title: Optional[str] = None
    is_frozen: bool = False
    internal_company_i_d: int = 0
    direct_url: Optional[str] = None
    allow_digital_signing_only_on_primary_versions: bool = False
    is_primary_version: bool = False
    file_extension: Optional[str] = None
    custom_properties: Optional[Dict[str, Object]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentMessage:
    header: Optional[Header] = None
    event_type: Optional[eventType] = None
    document: Optional[Document] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentRequestMessage:
    header: Optional[Header] = None
    root_document_i_d: Optional[str] = None
    include_physical_file: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProcessDocumentRequestMessage:
    instance_id: Optional[str] = None
    document_request: Optional[DocumentRequestMessage] = None

Python ProcessDocumentRequestMessage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /xml/reply/ProcessDocumentRequestMessage HTTP/1.1 
Host: kpm_digiofficeapigateway.tbi.nl 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ProcessDocumentRequestMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
  <DocumentRequest>
    <Header>
      <MessageID>String</MessageID>
      <Recipient>
        <Code>String</Code>
        <Environment>
          <Code>String</Code>
          <Title>String</Title>
        </Environment>
        <Title>String</Title>
        <Version>String</Version>
      </Recipient>
      <RequestMessageID />
      <Sender>
        <Code>String</Code>
        <Environment>
          <Code>String</Code>
          <Title>String</Title>
        </Environment>
        <Title>String</Title>
        <Version>String</Version>
      </Sender>
      <Timestamp>0001-01-01T00:00:00</Timestamp>
    </Header>
    <IncludePhysicalFile>false</IncludePhysicalFile>
    <RootDocumentID>String</RootDocumentID>
  </DocumentRequest>
  <InstanceId>00000000-0000-0000-0000-000000000000</InstanceId>
</ProcessDocumentRequestMessage>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<DocumentMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
  <Document>
    <Code>String</Code>
    <ConstructionBlockReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ConstructionBlockReference>
    <ConstructionNumberReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ConstructionNumberReference>
    <CreatedBy>String</CreatedBy>
    <CreationDate>0001-01-01T00:00:00</CreationDate>
    <CustomFields>
      <CustomField>
        <Name>String</Name>
        <Value>String</Value>
      </CustomField>
    </CustomFields>
    <DeletedDate>0001-01-01T00:00:00</DeletedDate>
    <DeletedDateSpecified>false</DeletedDateSpecified>
    <DocumentTypeReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </DocumentTypeReference>
    <File>
      <Content>String</Content>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <Name>String</Name>
      <Size>0</Size>
      <Type>String</Type>
    </File>
    <Floor>0</Floor>
    <FloorSpecified>false</FloorSpecified>
    <GlobalID>String</GlobalID>
    <HousingTypeReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </HousingTypeReference>
    <ModifiedBy>String</ModifiedBy>
    <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
    <NewestVersion>false</NewestVersion>
    <ProjectReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </ProjectReference>
    <RelationReference>
      <GlobalID>String</GlobalID>
      <Title>String</Title>
    </RelationReference>
    <RootDocumentID>String</RootDocumentID>
    <Subject>String</Subject>
    <VersionNumber>String</VersionNumber>
  </Document>
  <EventType>Update</EventType>
  <Header>
    <MessageID>String</MessageID>
    <Recipient>
      <Code>String</Code>
      <Environment>
        <Code>String</Code>
        <Title>String</Title>
      </Environment>
      <Title>String</Title>
      <Version>String</Version>
    </Recipient>
    <RequestMessageID />
    <Sender>
      <Code>String</Code>
      <Environment>
        <Code>String</Code>
        <Title>String</Title>
      </Environment>
      <Title>String</Title>
      <Version>String</Version>
    </Sender>
    <Timestamp>0001-01-01T00:00:00</Timestamp>
  </Header>
</DocumentMessage>